package com.indexingsystem.boss.admin.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.indexingsystem.boss.Vo.StatusList;
import com.indexingsystem.boss.entity.OperationsRelations;

public interface OperationsRelationsMapper {

	/**
	 * 通过功能操作关系id解除功能操作关系.
	 * 
	 * @param relationsId
	 * @return
	 */
	int deleteByPrimaryKey(String relationsId);

	/**
	 * 新增功能操作权限关系.
	 * 
	 * @param record
	 * @return
	 */
	int insert(OperationsRelations record);

	/**
	 * 新增功能操作权限关系.
	 * 
	 * @param record
	 * @return
	 */
	int insertSelective(OperationsRelations record);

	/**
	 * 通过功能操作id查询功能操作信息.
	 * 
	 * @param relationsId
	 * @return
	 */
	OperationsRelations selectByPrimaryKey(String relationsId);

	/**
	 * 修改功能操作关系信息.
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKeySelective(OperationsRelations record);

	/**
	 * 修改功能操作关系信息.
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKey(OperationsRelations record);

	/**
	 * 获取总记录数.
	 * 
	 * @return
	 */
	Integer getOperationsRelationsCount();

	/**
	 * 分页查询功能操作权限列表.
	 * 
	 * @param functionId
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	List<OperationsRelations> getOperationsRelationsList(String functionId);

	/**
	 * 通过功能id查询功能操作权限已关联列表总数量.
	 * 
	 * @param functionId
	 * @return
	 */
	Integer getOperationsRelationsByFunctionIdCount(String functionId);

	/**
	 * 批量删除功能操作权限关系.
	 * 
	 * @param functionId
	 * @return
	 */
	int deleteOperationsRelationsByIdBatch(@Param("list") List<String> list);
	

    /**
     * 批量删除功能操作关系操作.
     * 
     * @param functionId
     * @return
     */
    int deleteOperationsRelationsByFunctionIdBatch(@Param("list") List<String> list);

	/**
	 * 批量新增功能操作权限关系.
	 * 
	 * @param operationsRelationsList
	 * @return
	 */
	int addOperationsRelationsBatch(@Param("list") List<OperationsRelations> list);
	
    /**
     * 批量启用，禁用功能.
     * 
     * @param statusList
     * @return
     */
    int batchUpdateOptRelationsWithList(@Param("list") List<StatusList> list);
}